home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / bbs / amms20d.lha / amms / menu / Main.bat < prev    next >
DOS Batch File  |  1995-08-20  |  6KB  |  226 lines

  1. ;    $VER: 1.01 / 12.02.1994
  2. ; Main-Menue
  3. ; ----------
  4. ; Im Menu ist Command-Bit 6 gesetzt. Deshalb kann der User definiert
  5. ; auf Befehle zugreifen, auf die er normalerweise keinen Zugriff hat.
  6. ; Die Variable COM wird zum Erkennen von Fehlern benutzt. Tritt ein
  7. ; Fehler auf, so wird in die Routine SAVE_ERROR verzweigt, die den Fehler
  8. ; im File mbdat:menu.err protokolliert.
  9. ; Die Variable JUMP wird zum eventuellen Sprung von einem Untermenue zum
  10. ; anderen benutzt, ohne das Hauptmenue dazwischen aufzurufen. In dieser
  11. ; Variable muss dann das entsprechende Label des Untermenues stehen.
  12. ;
  13.  
  14. ; Batch-Break sperren
  15.  
  16. _break off/z/y                ; CTRL-Z und CTRL-Y sperren
  17. _break on/x/c                ; CTRL-C und CTRL-X zulassen
  18.  
  19. ; Konstanten fuer das gesamte Menu definieren
  20.  
  21. GUESTLEVEL==1000            ; Level fuer Gast
  22. USERLEVEL==2000                ; Mindest Level fuer User
  23. SYSOPLEVEL==9000            ; Mindest Level fuer Sysop
  24. JUMP_MAIN=="MAIN_MENU"            ; Einsprunglabel ins Main-Menues
  25.  
  26. ; Beim Start : Einsprung ins MAIN-Menu
  27.  
  28. JUMP==JUMP_MAIN                ; Main-Menu ist Anfang
  29.  
  30. ;
  31. ; **** Main-Menu
  32. ;
  33. MAIN:
  34. MENU="MAIN"                ; Name des Menues
  35. COM="MENU"                ; Menupunkt in Variable COM speichern
  36. COMNAME="Main-Menu"            ; WHO-Befehlsname setzen
  37. _on error SAVE_ERROR            ; Beim Fehler -> Fehlerbehandlungsrou.
  38.  
  39. ; Automatischer Sprung in ein Menu
  40.  
  41. _goto 'JUMP'                ; Sprung zu einem Menu
  42.  
  43. ; Menutext ausgeben und Tasten abfragen
  44.  
  45. MAIN_MENU:
  46. _menu/file "menu:'{ALANGUAGE}'/main.txt" -
  47.  "^R" MAIN_MENU -            ; Bildschirm erneuern
  48.  "A" APPLICATION -            ; Antrag
  49.  "B" CLI -                ; Befehleebene
  50.  "C" CALL -                ; Sysop rufen
  51.  "F" FILES -                ; File-System
  52.  "G" GAMES -                ; Spiele
  53.  "K" COMMU -                ; Kommunikationssystem
  54.  "M" MSGS -                ; Message-System
  55.  "O" SYSOP -                ; Sysop-Menu
  56.  "P" PMS -                ; PM-System
  57.  "R" RECALL -                ; Andere User einloggen
  58.  "S" SETTINGS -                ; Einstellungen
  59.  "T" STATISTIC -            ; Statistiken
  60.  "X" LOGOUT                ; System verlassen
  61.  
  62. ;
  63. ; **** Endroutine
  64. ; **** Diese Routine muss fuer das Beenden des Menues aufgerufen werden.
  65. ;
  66. END:
  67. GUESTLEVEL==                ; Variablen loeschen
  68. USERLEVEL==
  69. SYSOPLEVEL==
  70. JUMP_MAIN==
  71. JUMP==
  72. _eod                    ; Ende
  73.  
  74. ;
  75. ; **** Antrag
  76. ;
  77. APPLICATION:
  78. COM="APPLICATION"            ; Menupunkt setzen
  79. COMNAME=COM                ; WHO-Befehlsname setzen
  80. _if/i {LEVEL} == GUESTLEVEL then _goto APPLICATION_START ; Wenn Gast -> Antrag
  81. _if/i {LEVEL} < SYSOPLEVEL then _goto MAIN ; Wenn User -> Menu
  82. APPLICATION_START:
  83. _application                ; Antrag ausfuehren
  84. _gosub WAIT                ; Warte auf Taste
  85. _goto MAIN                ; -> Menue
  86.  
  87. ;
  88. ; **** Rueckkehr in die Befehlsebene
  89. ;
  90. CLI:
  91. _on error/ignore            ; Ignoriere Fehler in der Batch
  92. _disk text "menu:'{ALANGUAGE}'/CLI.txt" ; Gibt Informationstext aus
  93. _goto END                ; Verlasse Menu
  94.  
  95. ;
  96. ; **** Sysop rufen
  97. ;
  98. CALL:
  99. COM="CALL"                ; Menupunkt setzen
  100. COMNAME=COM                ; WHO-Befehlsname setzen
  101. _call                    ; Rufe Sysop
  102. _gosub WAIT                ; Warte auf Taste
  103. _goto MAIN                ; -> Menue
  104.  
  105. ;
  106. ; **** File-Menue aufrufen
  107. ;
  108. FILES:
  109. COM="FILES"                ; Menupunkt setzen
  110. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  111. _disk execute menu:file.bat        ; Untermenu ausfuehren
  112. _goto MAIN                ; -> Menue
  113.  
  114. ;
  115. ; **** Spiele-Menue aufrufen
  116. ;
  117. GAMES:
  118. COM="GAMES"                ; Menupunkt setzen
  119. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  120. _disk execute menu:game.bat        ; Untermenu ausfuehren
  121. _goto MAIN                ; -> Menue
  122.  
  123. ;
  124. ; **** Kommunikations-Menue aufrufen
  125. ;
  126. COMMU:
  127. COM="COMMUNICATION"            ; Menupunkt setzen
  128. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  129. _disk execute menu:commu.bat        ; Untermenu ausfuehren
  130. _goto MAIN                ; -> Menue
  131.  
  132. ;
  133. ; **** Msgs-Menue aufrufen
  134. ;
  135. MSGS:
  136. COM="MSGS"                ; Menupunkt setzen
  137. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  138. _disk execute menu:msg.bat        ; Untermenu ausfuehren
  139. _goto MAIN                ; -> Menue
  140.  
  141. ;
  142. ; **** Sysop-Menue aufrufen
  143. ;
  144. SYSOP:
  145. COM="SYSOP"                ; Menupunkt setzen
  146. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  147. _if/i {LEVEL} >= SYSOPLEVEL then -    ; Wenn Sysop -> Sysop-Menue
  148.    _disk execute menu:sysop.bat        ; Untermenu ausfuehren
  149. _goto MAIN                ; -> Menue
  150.  
  151. ;
  152. ; **** PM-Menue aufrufen
  153. ;
  154. PMS:
  155. COM="PMs"                ; Menupunkt setzen
  156. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  157. _disk execute menu:pm.bat        ; Untermenu ausfuehren
  158. _goto MAIN                ; -> Menue
  159.  
  160. ;
  161. ; **** unter anderem user einloggen
  162. ;
  163. RECALL:
  164. COM="RECALL"                ; Menupunkt setzen
  165. _recall                    ; Unter anderem User einloggen
  166. _gosub WAIT                ; Warte auf Taste
  167. _goto MAIN                ; -> Menue
  168.  
  169. ;
  170. ; **** Einstellungen aendern
  171. ;
  172. SETTINGS:
  173. COM="SETTINGS"                ; Menupunkt setzen
  174. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  175. _disk execute menu:settings.bat        ; Untermenu ausfuehren
  176. _goto MAIN                ; -> Menue
  177.  
  178. ;
  179. ; **** Statistik-Menue aufrufen
  180. ;
  181. STATISTIC:
  182. COM="STATISTIC"                ; Menupunkt setzen
  183. JUMP==JUMP_MAIN                ; Default: Ruecksprung in Main-Menu
  184. _disk execute menu:statistic.bat    ; Untermenu ausfuehren
  185. _goto MAIN                ; -> Menue
  186.  
  187. ;
  188. ; **** Verlasse Box
  189. ;
  190. LOGOUT:
  191. com="LOGOUT"                ; Menupunkt LOGOUT setzen
  192. _logout                    ; Verlasse Box
  193. _goto MAIN                ; -> Menue
  194.  
  195. ;
  196. ; **** SUBROUTINE: Gib einen Infotext aus und warte auf Taste
  197. ;
  198. WAIT:
  199. COM_OLD=COM                ; Alten Menupunkt retten
  200. COM="WAIT"                ; Neuen Menupunkt setzen
  201. _echo/nolf "^J[RETURN]"            ; Gib Wartemeldung aus
  202. _waitkey " ^M"                ; Warte auf Space oder Return
  203. COM=COM_OLD                ; Alten Menupunkt setzen
  204. _return                    ; Ende der Unterroutine
  205.  
  206. ;
  207. ; **** Fehlerbehandlungs-Routine
  208. ;
  209. ; Die Routine erwartet in der Variable COM den Namen des akt. Menupunkts.
  210. ; Sie protokolliert im File mbdat:menu.err die Fehler des Menues.
  211. ;
  212. SAVE_ERROR:
  213. _on error/ignore            ; Alle Fehler ignorieren
  214. _extern echo >>mbdat:menu.err "------------------"
  215. _extern echo >>mbdat:menu.err "Fehler im Menu"
  216. _extern echo >>mbdat:menu.err "Menu : 'MENU'"
  217. _extern echo >>mbdat:menu.err "Punkt: 'COM'"
  218. _extern echo >>mbdat:menu.err "User : '{NAME}'"
  219. _extern echo >>mbdat:menu.err "Datum: '{DATE}'"
  220. _extern echo >>mbdat:menu.err "Zeit : '{TIME}'"
  221. _extern echo >>mbdat:menu.err "------------------"
  222. _disk text "menu:'{ALANGUAGE}'/Error.txt"  ; Fehlertext anzeigen
  223. _waitkey " ^M"
  224. _if COM == "Menu" then _goto CLI    ; Wenn Fehler im Main-Menu -> CLI
  225. _goto MAIN                ; -> Main-Menu
  226.